/*
 * 10const修饰结构体指针.c
 *
 *  Created on: 2024年3月16日
 *      Author: HP
 */
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>

typedef struct student ss;

struct student {
	char name[21];
	int age;
	int score[3];
	char addr[51];
};

int main0910(){
	ss stu1 = {"孙悟空", 700, 101, 101, 101, "花果山"};
	ss stu2 = {"猪八戒", 1200, 1000, 1000, 1000, "高老庄"};
	// const修饰结构体指针类型
	const ss* p = &stu1;
	p = &stu2; // ok
	// p->age = 888; // err
	//(*p).age = 88; //err

	// const修饰结构体指针变量
	ss* const p2 = &stu1;
	//p2 = &stu2; // err
	p2->age = 888; // ok

	const ss* const p3 = &stu1;
	//p3 = &stu2; // err
	// p3->age = 888; // err

	// 二级指针
	ss** pp = &p3;
	// 二级指针加个*变成一级指针
	(*pp)->age = 888; // ok
	*pp = &stu2; // ok
	// **就是变量值了
	(**pp).age = 999; // ok

	return 0;
}
